Analyse du commerce électronique brésilien¶
Importations des librairies¶
Importations des doonées¶
<class 'pandas.core.frame.DataFrame'> RangeIndex: 112650 entries, 0 to 112649 Data columns (total 51 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 order_id 112650 non-null object 1 order_item_id 112650 non-null int64 2 product_id 112650 non-null object 3 seller_id 112650 non-null object 4 price 112650 non-null float64 5 freight_value 112650 non-null float64 6 shipping_limit 112650 non-null datetime64[us] 7 limit 112650 non-null float64 8 name_lenght 111047 non-null float64 9 description_lenght 111047 non-null float64 10 photos_qty 111047 non-null float64 11 weight_g 112632 non-null float64 12 length_cm 112632 non-null float64 13 height_cm 112632 non-null float64 14 width_cm 112632 non-null float64 15 category_name 112650 non-null object 16 customer_id 112650 non-null object 17 purchase_timestamp 112650 non-null datetime64[us] 18 approved_at 112635 non-null datetime64[us] 19 delivered_carrier 111456 non-null datetime64[us] 20 delivered_customer 110196 non-null datetime64[us] 21 estimated_delivery 112650 non-null datetime64[us] 22 status 112650 non-null object 23 annee 112650 non-null int32 24 mois 112650 non-null int32 25 annee_mois 112650 non-null int32 26 jour 112650 non-null int32 27 annee_jour 112650 non-null int32 28 jour_semaine 112650 non-null int32 29 trimestre 112650 non-null int32 30 annee_trimestre 112650 non-null int32 31 semaine 112650 non-null int32 32 annee_semaine 112650 non-null int32 33 heure 112650 non-null int32 34 approuvee 112635 non-null float64 35 envoyee 111456 non-null float64 36 livree 110196 non-null float64 37 estimee 112650 non-null float64 38 customer_unique_id 112650 non-null object 39 cust_zip_code 112650 non-null int32 40 cust_city 112650 non-null object 41 cust_state 112650 non-null object 42 cust_name_state 112650 non-null object 43 cust_lat 112348 non-null float64 44 cust_lng 112348 non-null float64 45 sell_zip_code 112650 non-null int32 46 sell_city 112650 non-null object 47 sell_state 112650 non-null object 48 sell_name_state 112650 non-null object 49 sell_lat 112397 non-null float64 50 sell_lng 112397 non-null float64 dtypes: datetime64[us](6), float64(18), int32(13), int64(1), object(13) memory usage: 38.2+ MB
| order_id | order_item_id | product_id | seller_id | price | freight_value | shipping_limit | limit | name_lenght | description_lenght | ... | cust_state | cust_name_state | cust_lat | cust_lng | sell_zip_code | sell_city | sell_state | sell_name_state | sell_lat | sell_lng | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 74589 | a9ed648a6ef557d5075c383b251b4997 | 1 | e78506414d2563b6414cfd84b7fa0802 | fe2032dab1a61af8794248c8196565c9 | 179.00 | 26.53 | 2017-08-17 09:25:11 | 0.225833 | 58.0 | 827.0 | ... | CE | Ceará | -3.687732 | -40.351387 | 13030 | campinas | SP | São Paulo | -22.924970 | -47.074284 |
| 23955 | 36909b609792791f7f50d7cff2b5a0d6 | 1 | 952670bc019a73f0933157ec82ff6e4f | 37be5a7c751166fbc5f8ccba4119e043 | 189.90 | 14.93 | 2017-09-12 10:04:57 | 0.207500 | 46.0 | 162.0 | ... | SP | São Paulo | -23.554794 | -46.649615 | 4248 | sao paulo | SP | São Paulo | -23.612734 | -46.598134 |
| 74744 | aa3e939d90791cb80173b38e4faf79a1 | 2 | 927c2a01437aaec44d9b67f277b55eab | 7c67e1448b00f6e969d365cea6b010ab | 199.99 | 52.95 | 2017-02-14 23:52:09 | 0.000000 | 44.0 | 1208.0 | ... | PR | Paraná | -25.416682 | -49.336230 | 8577 | itaquaquecetuba | SP | São Paulo | -23.486111 | -46.366721 |
| 86848 | c5351b62ac42d8a63b11a24ca403a30f | 3 | 04be6baed9b1c67197a4b2dd2f5b637c | cca3071e3e9bb7d12640c9fbe2301306 | 89.90 | 13.65 | 2017-12-14 11:56:22 | 0.133611 | 59.0 | 468.0 | ... | SP | São Paulo | -23.589488 | -46.681001 | 14940 | ibitinga | SP | São Paulo | -21.757321 | -48.829744 |
| 96331 | da9e071e6f18a649211bbb97bd81380c | 1 | 3288d87408bc4a61d7672f10aaa96e8e | e24d3429d294b2eb200b064ebb035879 | 30.00 | 7.47 | 2018-07-18 08:30:13 | 0.221667 | 60.0 | 1097.0 | ... | SP | São Paulo | -23.595346 | -46.503990 | 3514 | sao paulo | SP | São Paulo | -23.533798 | -46.517873 |
5 rows × 51 columns
Récupération des scores¶
Préparation des données¶
Nettoyage des valeurs extrem¶
anonymisation des vendeurs¶
Définition des périodes de solde¶
1 / Analyse de la Tarification et des Frais de Livraison¶
Préparation des données¶
<class 'pandas.core.frame.DataFrame'> Index: 105444 entries, 0 to 112649 Data columns (total 67 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 order_id 105444 non-null object 1 order_item_id 105444 non-null int64 2 product_id 105444 non-null object 3 seller_id 105444 non-null object 4 price 105444 non-null float64 5 freight_value 105444 non-null float64 6 shipping_limit 105444 non-null datetime64[us] 7 limit 105444 non-null float64 8 name_lenght 103985 non-null float64 9 description_lenght 103985 non-null float64 10 photos_qty 103985 non-null float64 11 weight_g 105444 non-null float64 12 length_cm 105444 non-null float64 13 height_cm 105444 non-null float64 14 width_cm 105444 non-null float64 15 category_name 105444 non-null object 16 customer_id 105444 non-null object 17 purchase_timestamp 105444 non-null datetime64[us] 18 approved_at 105430 non-null datetime64[us] 19 delivered_carrier 105443 non-null datetime64[us] 20 delivered_customer 105444 non-null datetime64[us] 21 estimated_delivery 105444 non-null datetime64[us] 22 status 105444 non-null object 23 annee 105444 non-null int32 24 mois 105444 non-null int32 25 annee_mois 105444 non-null int32 26 jour 105444 non-null int32 27 annee_jour 105444 non-null int32 28 jour_semaine 105444 non-null int32 29 trimestre 105444 non-null int32 30 annee_trimestre 105444 non-null int32 31 semaine 105444 non-null int32 32 annee_semaine 105444 non-null int32 33 heure 105444 non-null int32 34 approuvee 105430 non-null float64 35 envoyee 105443 non-null float64 36 livree 105444 non-null float64 37 estimee 105444 non-null float64 38 customer_unique_id 105444 non-null object 39 cust_zip_code 105444 non-null int32 40 cust_city 105444 non-null object 41 cust_state 105444 non-null object 42 cust_name_state 105444 non-null object 43 cust_lat 105167 non-null float64 44 cust_lng 105167 non-null float64 45 sell_zip_code 105444 non-null int32 46 sell_city 105444 non-null object 47 sell_state 105444 non-null object 48 sell_name_state 105444 non-null object 49 sell_lat 105209 non-null float64 50 sell_lng 105209 non-null float64 51 score 105444 non-null int64 52 score_1 105444 non-null int64 53 score_2 105444 non-null int64 54 score_3 105444 non-null int64 55 score_4 105444 non-null int64 56 score_5 105444 non-null int64 57 seller_id_anon 105444 non-null object 58 periode_soldes 105444 non-null int64 59 marge_brute 105444 non-null float64 60 distance_km 104933 non-null float64 61 total_spent_par_client 105444 non-null float64 62 nb_commandes_par_vendeur 105444 non-null int64 63 prix_moyen_categorie 105444 non-null float64 64 freight_moyen_categorie 105444 non-null float64 65 freight_moyen_region 105444 non-null float64 66 freight_par_distance 104907 non-null float64 dtypes: datetime64[us](6), float64(25), int32(13), int64(9), object(14) memory usage: 49.5+ MB
1 - Quel tranche de produits par prix est le plus acheté¶
On constate que la majorité des produits acheté sont peu coûteux ( 100< )
2 - Quel frais de livraison est plus appliqué¶
La majorité des commandes ont un frais de livraison entre 10 et 20 BRL, avec un pic marqué autour de 17 BRL.
3 - Le prix du produits est il corrélé à ses frais de livraison ?¶
- Il n’existe pas de relation évidente et linéaire entre le prix du produit et ses frais de livraison.
- Même pour des produits bon marché (moins de 200 BRL), les frais de livraison peuvent varier de 0 à plus de 60 BRL.
- Les produit à plus de 200 BRL présente très rarement des frais de livraison en dessous de 10 BRL
4 - Evolution des prix et des frais de livraison dans le temps¶
Contrairement au prix des produits, les frais de livraison sont bien plus stables, se situant en moyenne entre 10 et 20 BRL.
Est-ce que certaines régions ont vu une augmentation plus forte des frais de livraison ?
5 - Es ce qu'il y a une corrélation entre distance client vendeur et frais de livraison ?¶
La ligne de régression rouge indique une relation positive : plus la distance est grande, plus les frais de livraison ont tendance à augmenter.
Cependant, la dispersion des points est très importante, ce qui montre que la distance n’est pas le seul facteur influençant les frais de livraison.
Pour les distances inférieures à 2000 km, les frais de livraison sont très dispersés (allant de 0 BRL à plus de 60 BRL)
6 - Les frais de livraison dépendent-ils de la région du vendeur ?¶
Les États du sud-est comme RJ (Rio de Janeiro), SP (São Paulo) et MG (Minas Gerais) ont des frais de livraison plus bas et plus concentrés.
À l’inverse, des régions du nord et du centre comme AC (Acre), RR (Roraima) et RN (Rio Grande do Norte) présentent des frais plus élevés et une dispersion plus importante.
Certains États montrent de très larges distributions des frais de livraison (ex. RR, AC, TO), ce qui peut être lié à une diversité des distances de livraison ou au manque d’infrastructures logistiques.
Ce graphique met en évidence une forte disparité régionale des frais de livraison au Brésil. Les grandes métropoles comme São Paulo et Rio de Janeiro bénéficient de frais plus faibles, tandis que les régions éloignées ou moins développées subissent des coûts plus élevés et plus variables
7 - calcule des produits les plus rentables¶
Avec une marge moyenne avoisinant 600 BRL, les "computers" affichent la rentabilité la plus élevée.
Des catégories comme "small appliances - home oven and coffee", "home appliances" et "air conditioning" ont des marges élevées (entre 200 et 400 BRL).
- Ces produits sont souvent vendus à des prix élevés et peuvent avoir des coûts de production relativement bas par rapport à leur prix de vente.
8 - Es ce que les différents vendeur appliquer des frais de livraison différents ?¶
Certains vendeurs appliquent des frais plus homogènes (ex. vendeur_10, vendeur_12, vendeur_13), tandis que d’autres ont une très grande dispersion (vendeur_21, vendeur_52).
Le vendeur_21 semble appliquer les frais de livraison les plus élevés en moyenne, avec plusieurs commandes dépassant 60 BRL.
9 - Es ce que les vendeur appliquent des prix différents sur un même produit ?¶
10 - Impact du mode de transport sur les frais de livraison¶
Le mode "Express/Postal" a les frais les plus faibles et les plus concentrés
- La majorité des frais se situent entre 5 et 15 BRL, avec très peu de dispersion.
- Cela suggère une tarification plus uniforme, souvent appliquée aux petits colis standards.
Le "Transport Routier" et le "Fret Longue Distance" ont des frais plus élevés et plus dispersés
- Ces deux modes affichent une médiane plus haute (autour de 20 BRL) et une plus grande variabilité des coûts.
- Le "Transport Routier" semble légèrement plus coûteux en moyenne que le "Fret Longue Distance", avec plus de frais atteignant 40 BRL et plus.
2 - Analyse des Différences entre Petits et Grands Vendeurs (Qui vend le mieux ?)¶
Préparation des données¶
<class 'pandas.core.frame.DataFrame'> Index: 107975 entries, 0 to 112649 Data columns (total 66 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 order_id 107975 non-null object 1 order_item_id 107975 non-null int64 2 product_id 107975 non-null object 3 seller_id 107975 non-null object 4 price 107975 non-null float64 5 freight_value 107975 non-null float64 6 shipping_limit 107975 non-null datetime64[us] 7 limit 107975 non-null float64 8 name_lenght 106489 non-null float64 9 description_lenght 106489 non-null float64 10 photos_qty 106489 non-null float64 11 weight_g 107975 non-null float64 12 length_cm 107975 non-null float64 13 height_cm 107975 non-null float64 14 width_cm 107975 non-null float64 15 category_name 107975 non-null object 16 customer_id 107975 non-null object 17 purchase_timestamp 107975 non-null datetime64[us] 18 approved_at 107961 non-null datetime64[us] 19 delivered_carrier 107974 non-null datetime64[us] 20 delivered_customer 107975 non-null datetime64[us] 21 estimated_delivery 107975 non-null datetime64[us] 22 status 107975 non-null object 23 annee 107975 non-null int32 24 mois 107975 non-null int32 25 annee_mois 107975 non-null period[M] 26 jour 107975 non-null int32 27 annee_jour 107975 non-null int32 28 jour_semaine 107975 non-null int32 29 trimestre 107975 non-null int32 30 annee_trimestre 107975 non-null int32 31 semaine 107975 non-null int32 32 annee_semaine 107975 non-null int32 33 heure 107975 non-null int32 34 approuvee 107961 non-null float64 35 envoyee 107974 non-null float64 36 livree 107975 non-null float64 37 estimee 107975 non-null float64 38 customer_unique_id 107975 non-null object 39 cust_zip_code 107975 non-null int32 40 cust_city 107975 non-null object 41 cust_state 107975 non-null object 42 cust_name_state 107975 non-null object 43 cust_lat 107692 non-null float64 44 cust_lng 107692 non-null float64 45 sell_zip_code 107975 non-null int32 46 sell_city 107975 non-null object 47 sell_state 107975 non-null object 48 sell_name_state 107975 non-null object 49 sell_lat 107737 non-null float64 50 sell_lng 107737 non-null float64 51 score 107975 non-null int64 52 score_1 107975 non-null int64 53 score_2 107975 non-null int64 54 score_3 107975 non-null int64 55 score_4 107975 non-null int64 56 score_5 107975 non-null int64 57 seller_id_anon 107975 non-null object 58 periode_soldes 107975 non-null int64 59 nb_commandes_par_vendeur 107975 non-null int64 60 revenu_total_vendeur 107975 non-null float64 61 categorie_dominante_vendeur 107975 non-null object 62 taille_vendeur 107975 non-null object 63 prix_moyen_vendeur 107975 non-null float64 64 evolution_part_marche 107975 non-null int64 65 taux_fidelisation_vendeur 107975 non-null float64 dtypes: datetime64[us](6), float64(21), int32(12), int64(10), object(16), period[M](1) memory usage: 50.3+ MB
1 - Répartition des plus gros vendeur de la plateforme¶
Forte concentration de vendeurs avec peu de commandes
- La majorité des vendeurs ont moins de 100 commandes, ce qui indique une grande présence de petits vendeurs.
- Cela suggère que le marché est fortement fragmenté, avec de nombreux vendeurs réalisant un faible volume de ventes.
Présence de quelques grands vendeurs avec un volume très élevé
- Quelques pics apparaissent vers 500, 1000 et 2000 commandes, indiquant l’existence d’un petit groupe de vendeurs dominant les ventes.
2 - Répartition des plus gros chiffre d'affaire de la plateforme¶
Les vendeurs qui réalisent le plus de commandes ne sont pas forcément ceux qui génèrent le plus de chiffre d’affaires.
- Par exemple, vendeur_22 et vendeur_12 étaient en tête en nombre de commandes, mais seul vendeur_12 apparaît également dans le classement du chiffre d’affaires.
- Cela indique que certains vendeurs privilégient le volume de ventes, tandis que d’autres vendent des produits plus chers.
Certains vendeurs à fort chiffre d’affaires ne figurent pas dans le top des commandes
- Vendeur_84 et vendeur_191 dominent le chiffre d’affaires, mais ils ne figuraient pas dans le top des vendeurs en nombre de commandes.
- Cela suggère qu’ils vendent des produits plus chers, générant un revenu plus élevé avec moins de ventes.
3 - Les catégorie privilégié chez les gros vendeur¶
Les petits vendeurs restent compétitifs dans certaines niches.
- Certaines catégories montrent une répartition plus équilibrée.
- Identifier ces segments pourrait permettre aux petits vendeurs de se différencier et d’optimiser leur stratégie.
4 - Les gros vendeur apport-il plus de satisfaction aux clients ?¶
5 - Les gros vendeur sont-ils bien noté ?¶
- Présence d’un nombre significatif d’avis négatifs pour certains vendeurs
- On observe également des avis négatifs (score_1 et score_2, en bleu) pour tous les vendeurs, même ceux avec de nombreuses notes positives.
- Certains vendeurs, comme vendeur_10 et vendeur_181, semblent avoir plus d’avis négatifs que d’autres, ce qui pourrait signaler des problèmes récurrents avec leurs produits ou leur service.
6 - Les gros vendeur arrivent-ils a ventre plus de produit cher ?¶
Les petits vendeurs ne vendent pas nécessairement des produits moins chers.
- Contrairement à ce que l’on pourrait penser, ils affichent même des prix légèrement plus élevés en moyenne.
Les grands vendeurs ont une structure de prix similaire, mais optimisent peut-être les coûts.
- Ils vendent à des prix comparables, voire légèrement inférieurs, tout en réalisant un grand volume de ventes.
- Leur avantage réside sûrement dans des coûts de logistique réduits ou des négociations avantageuses avec les fournisseurs.
7 - Différence des parts du marché entre petit et gros vendeur¶
Dès mi-2017, on observe une forte augmentation du nombre de commandes pour les grands vendeurs.
- Le pic le plus important est atteint vers fin 2017 - début 2018, avec plus de 400 000 commandes en un mois.
- Après ce pic, il y a une forte volatilité, mais les grands vendeurs restent largement dominants en volume de ventes.
Les petits vendeurs progressent lentement mais restent en retrait
- Le nombre de commandes réalisées par les petits vendeurs augmente progressivement, mais la croissance reste beaucoup plus modérée par rapport aux grands vendeurs.
- Leur évolution semble stable et linéaire, sans pics marqués.
8 - Différence entre l'impact des promotion sur les petits et les gros vendeurs¶
Les ventes hors promotion restent stables après 2018.
- On observe un ralentissement de la croissance des ventes hors promotion, tandis que les ventes en promotion continuent d’augmenter.
- Cela peut indiquer que les promotions deviennent un levier essentiel pour générer des ventes sur la plateforme.
3/ Analyse de la Fidélité des Clients¶
Préparation des données¶
<class 'pandas.core.frame.DataFrame'> Index: 107975 entries, 0 to 112649 Data columns (total 67 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 order_id 107975 non-null object 1 order_item_id 107975 non-null int64 2 product_id 107975 non-null object 3 seller_id 107975 non-null object 4 price 107975 non-null float64 5 freight_value 107975 non-null float64 6 shipping_limit 107975 non-null datetime64[us] 7 limit 107975 non-null float64 8 name_lenght 106489 non-null float64 9 description_lenght 106489 non-null float64 10 photos_qty 106489 non-null float64 11 weight_g 107975 non-null float64 12 length_cm 107975 non-null float64 13 height_cm 107975 non-null float64 14 width_cm 107975 non-null float64 15 category_name 107975 non-null object 16 customer_id 107975 non-null object 17 purchase_timestamp 107975 non-null datetime64[us] 18 approved_at 107961 non-null datetime64[us] 19 delivered_carrier 107974 non-null datetime64[us] 20 delivered_customer 107975 non-null datetime64[us] 21 estimated_delivery 107975 non-null datetime64[us] 22 status 107975 non-null object 23 annee 107975 non-null int32 24 mois 107975 non-null int32 25 annee_mois 107975 non-null int32 26 jour 107975 non-null int32 27 annee_jour 107975 non-null int32 28 jour_semaine 107975 non-null int32 29 trimestre 107975 non-null int32 30 annee_trimestre 107975 non-null int32 31 semaine 107975 non-null int32 32 annee_semaine 107975 non-null int32 33 heure 107975 non-null int32 34 approuvee 107961 non-null float64 35 envoyee 107974 non-null float64 36 livree 107975 non-null float64 37 estimee 107975 non-null float64 38 customer_unique_id 107975 non-null object 39 cust_zip_code 107975 non-null int32 40 cust_city 107975 non-null object 41 cust_state 107975 non-null object 42 cust_name_state 107975 non-null object 43 cust_lat 107692 non-null float64 44 cust_lng 107692 non-null float64 45 sell_zip_code 107975 non-null int32 46 sell_city 107975 non-null object 47 sell_state 107975 non-null object 48 sell_name_state 107975 non-null object 49 sell_lat 107737 non-null float64 50 sell_lng 107737 non-null float64 51 score 107975 non-null int64 52 score_1 107975 non-null int64 53 score_2 107975 non-null int64 54 score_3 107975 non-null int64 55 score_4 107975 non-null int64 56 score_5 107975 non-null int64 57 seller_id_anon 107975 non-null object 58 periode_soldes 107975 non-null int64 59 nb_achats_client 107975 non-null int64 60 categorie_preferee_client 107975 non-null object 61 client_fidele 107975 non-null bool 62 panier_moyen_client 107975 non-null float64 63 valeur_client 107975 non-null float64 64 ancien_client 107975 non-null bool 65 impact_promo_fidelisation 107975 non-null float64 66 satisfaction_client_fidele 107975 non-null float64 dtypes: bool(2), datetime64[us](6), float64(22), int32(13), int64(9), object(15) memory usage: 49.2+ MB
1 - Classement des types de clients pas nombre d'achat¶
- Fidélisation limitée sur la plateforme
- Ce graphique met en évidence un problème de fidélisation des clients.
- La plateforme semble être fortement dépendante de nouveaux clients, plutôt que de clients récurrents.
2 - Qu'elles sont les catégories les plus apprécié par les clients fidèle ?¶
3 - Es ce que la plateforme a su fidéliser des clients au file du temps ?¶
- Forte augmentation en fin 2017 suivie d’une baisse en 2018
- Un pic important est observé vers novembre 2017, avec plus de 1000 clients fidèles.
- Ce pic est suivi d’une chute brutale en décembre 2017, qui pourrait être due à une fin de campagne promotionnelle ou à un effet saisonnier (achats de fin d’année).
- Après cette baisse, le nombre de clients fidèles se stabilise autour de 800-900 clients, mais on note une tendance à la baisse après mai 2018.
4 - Les clients fidèle consomme t'ils plus que les clients non fidèle ?¶
- Les clients occasionnels ont un panier moyen plus élevé
- Les clients occasionnels (False) dépensent en moyenne plus par achat que les clients fidèles (True).
- Leur panier moyen dépasse 120 BRL, tandis que celui des clients fidèles est inférieur à 100 BRL.
5 - Qu'elle est la répartition de nos client en fonction du prix qu'ils payent ?¶
6 - Es ce que les clients fidèle représente une par significative de notre clientèle ?¶
- Une dépendance massive aux nouveaux clients
- Le nombre de nouveaux clients est extrêmement élevé par rapport aux anciens clients.
- Cela signifie que la majorité des utilisateurs achètent une seule fois et ne reviennent pas.
- Le taux de fidélisation est donc très faible, ce qui pose un problème pour la croissance durable de la plateforme.
7 - Qu'elle est l'impact des promotions sur ces deux segments clients ?¶
8 - Es ce que les clients fidèle sont plus satisfait que les client non fidèle ?¶
9 - Peut on définir des catégories qui plaise au client qui dépense le plus ?¶
10 - Peut on définir un rapport entre la valeur d'un client, sa fidélisation et l'impact des promotion ?¶
- Les promotions jouent un rôle clé dans la fidélisation des clients, mais elles sont surtout utilisées par ceux qui ont une valeur client modérée.
- Les clients Premium et à forte valeur ne sont pas nécessairement sensibles aux promotions, ils achètent davantage sans attendre des réductions.